package com.shiyun.disaster_station.station.bean.po;

import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.annotation.TableName;
import com.shiyun.disaster_station.station.bean.req.StationImportReq;
import com.shiyun.disaster_station.utils.GpsUtil;
import lombok.Data;
import org.locationtech.jts.geom.Point;

import java.util.HashMap;
import java.util.Map;

/**
 * 类 描 述: 站点
 * 作   者: 史 云
 * 版   本: 1.0.0
 * 时   间: 2022年01月11日  10:00:00
 */
@Data
@TableName(value = "t_line_station")
public class StationPo {
    Integer id;
    /**
     * 属性描述: 展示给客户看的里程=》打桩标号里程
     * 作    者: 史 云
     * 时    间: 2022年06月16日  17:30:38
     */
    String code;
    String name;
    double lon;
    double lat;
    String stationTelephone;
    String lineId;
    String mileage;
    String info;

    /**
     * 方法描述: 设置站点详细信息
     * 作    者: 史 云
     * 时    间: 2022年05月17日  15:14:33
     */
    public void fillInfo(StationImportReq item){
        Map<String,String> info = new HashMap<>(16);
        info.put("sortNo",item.getSortNo());
        info.put("lineName",item.getLineName());
        info.put("direction",item.getDirection());
        info.put("remark",item.getRemark());
        info.put("publicWorksSystem",item.getPublicWorksSystem());
        info.put("vehicleSystem",item.getVehicleSystem());
        info.put("electricitySystem",item.getElectricitySystem());
        info.put("powerSupplySystem",item.getPowerSupplySystem());
        info.put("maintenanceSystem",item.getMaintenanceSystem());
        info.put("buildingSection",item.getBuildingSection());
        info.put("carService",item.getCarService());
        info.put("communicate",item.getCommunicate());
        info.put("fixedUnit",item.getFixedUnit());
        info.put("fixedSector",item.getFixedSector());
        info.put("otherUnits",item.getOtherUnits());
        this.info = JSONUtil.toJsonStr(info);
    }

    /**
     * 方法描述: WGS84转火星
     * 作    者: 史 云
     * 时    间: 2022年06月06日  11:30:38
     */
    public void wgs84ToMars(){
        Point point = GpsUtil.wgs84ToMars(lat, lon);
        this.lon = point.getX();
        this.lat = point.getY();
    }
}
